class PlanesHorariosController < ApplicationController
  #MODULE: Horario Laboral

  # GET /planes_horarios
  # GET /planes_horarios.xml
  def index
    @planes_horarios = PlanHorario.all
    respond_to do |format|
      format.html # index.html.erb
      format.xml  { render :xml => @planes_horarios }
    end
  end

  # GET /planes_horarios/1
  # GET /planes_horarios/1.xml
  def show
    @plan_horario = PlanHorario.find(params[:id])
    
    respond_to do |format|
      format.html # show.html.erb
      format.js   {render :layout => false}
      format.xml  { render :xml => @plan_horario }
    end
  end

  # GET /planes_horarios/new
  # GET /planes_horarios/new.xml
  def new
    @plan_horario = PlanHorario.new(:usuario_id=>params[:usuario_id],:inicio=>I18n.l(Time.now,:format=>:date))
    
    respond_to do |format|
      format.html # new.html.erb
      format.js   {render :layout => false}
      format.xml  { render :xml => @plan_horario }
    end
  end

  # GET /planes_horarios/1/edit
  def edit
    @plan_horario = PlanHorario.find(params[:id])
    respond_to do |format|
      format.html # new.html.erb
      format.js   {render :layout => false}
    end
  end

  # POST /planes_horarios
  # POST /planes_horarios.xml
  def create
    @plan_horario = PlanHorario.new(params[:plan_horario])
    usuario= Usuario.find(params[:plan_horario][:usuario_id])
    plan_horario_anterior=usuario.planes_horarios.last()
#    if plan_horario_anterior
#      plan_horario_anterior.fin=params[:plan_horario][:inicio]
#      plan_horario_anterior.save
#    end
    respond_to do |format|
      if @plan_horario.save
        format.html {
          flash[:notice] =  'Plan Horario creado correctamente.'
          params[:oper].nil? ? redirect_to(@plan_horario.usuario) : render(:text => "Ok")
        }
        format.js   {actualizar_view}
      else
        format.html { render :action => "new" }
        format.xml  { render :xml => @plan_horario.errors, :status => :unprocessable_entity }
      end
    end
  end

  # PUT /planes_horarios/1
  # PUT /planes_horarios/1.xml
  def update
    @plan_horario = PlanHorario.find(params[:id])
    respond_to do |format|
      if @plan_horario.update_attributes(params[:plan_horario])
        format.html {
          flash[:notice] = 'Plan Horario actualizado correctamente.'
          redirect_to(@plan_horario.usuario)
        }
        format.xml  { head :ok }
        format.js   {actualizar_view}
      else
        format.html { render :action => "edit" }
        format.xml  { render :xml => @plan_horario.errors, :status => :unprocessable_entity }
      end
    end
  end

  # DELETE /planes_horarios/1
  # DELETE /planes_horarios/1.xml
  def destroy
    @plan_horario = PlanHorario.find(params[:id])
    usuario=@plan_horario.usuario
    @plan_horario.destroy

      respond_to do |format|
        format.js do
          render :update do |page|
            page["tr-planhorario-#{params[:id]}"].remove
          end
        end
      end
  end

  private
  #TODO: Mejoras pendientes, solo actualizar insertando una nueva fila,
  #no renderizando todo el index
  def actualizar_view
    @usuario=@plan_horario.usuario
    @planes_horarios=@usuario.planes_horarios
    @action_name="edit"
    render :update do |page|
      page.replace_html "planes_horarios", :file => "planes_horarios/index"
      page.visual_effect(:highlight, "tr-planhorario-#{@plan_horario.id}", :duration=>2.5)
      page << "makeColorBox()"
    end
  end

end
